package com.instala.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.instala.pojos.Almacen;
import com.instala.pojos.Productoautocomplete;

public class Query {
	private static Log log = LogFactory.getLog(Query.class);

	public List<Almacen> getAlmacenesAll() {
		List<Almacen> ltsAlmacen = new ArrayList<Almacen>();
		Connectionmanager conm =null;
		Connection con = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			 conm = new Connectionmanager();

			con = conm.getConectionPostgres();

			ps = con.prepareStatement("select * from almacen");
			rs = ps.executeQuery();

			while (rs.next()) {
				Almacen a = new Almacen();
				a.setId(rs.getInt("id_almacen"));
				a.setNombre(rs.getString("nombre"));
				ltsAlmacen.add(a);
			}

		} catch (Exception e) {
			log.error("error al consultar getAlmacenes \n" + e);

		} finally {
			if(conm!=null)
			conm.cerrarConexion(con);
		}

		return ltsAlmacen;
	}

	public List<Productoautocomplete> getBuscarProducto(boolean porclave,
			String prefix) {
		List<Productoautocomplete> ltsproducto = new ArrayList<Productoautocomplete>();
		Connectionmanager conm =null;
		Connection con = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
		 conm = new Connectionmanager();
			con = conm.getConectionaspel();
			ps = con.prepareStatement("select * from inve01 where CVE_ART like '%?%';");
			ps.setString(1, prefix);
			rs = ps.executeQuery();

			while (rs.next()) {
				Productoautocomplete prod = new Productoautocomplete();
				prod.setValue(rs.getString("CVE_ART"));
				prod.setDesc(rs.getString("DESCR"));
				prod.setLabel(rs.getString("LIN_PROD"));
				ltsproducto.add(prod);

			}
		} catch (Exception e) {
			log.error("error al consultar getAlmacenes \n" + e);

		} finally {
			if(conm!=null)
			conm.cerrarConexion(con);
		}
		return ltsproducto;
	}

}
